In a communications network, data can normally be routed via one or more of a plurality of routing paths. In order to balance data load among the different routing paths on the network, load balancing is performed. Load balancing can be undertaken in many different manners; for instance, data may be transferred from a source routing node in the network to a destination node using a shortest path commonly calculated using the so called Dijkstra's algorithm, or data may be transmitted to travel on various (non-shortest) routing paths to better balance to network load, even though the selected paths are non-optimal with respect to e.g. Quality of Service (QoS). Metrics of each routing path form the basis for calculating which routing paths should be used for transferring the data from the source node to the destination node. Load balancing generally aims at optimizing the use of resources in the network based on one or more metrics. For instance, the objective may be to maximize throughput, minimize response time, provide the best possible QoS for a particular transmitted piece of data. In a general example, to load balance the network, the routing paths passing through routing nodes having the greatest available capacity is selected, thereby assigning a greater load to high-capacity routers.
A problem in the art when performing routing path selection, e.g. for the purpose of performing load balancing, is that the routing path selection relies on a static model of the network which oftentimes results in inaccurate metrics, thus using inexact metric values as a basis for calculating and selecting the routing paths on which the data is to be submitted, which ultimately leads to an inferior routing path selection approach.